package main

import (
	"unsafe"
)

func main() {
	// t := Test{
	// 	F1: 0x1234,
	// 	F2: 0x4567,
	// 	F3: 12,
	// }

	// bytes := struct2Bytes(unsafe.Pointer(&t), 16)
	// fmt.Println("test -> []byte :", bytes) // 小端序输出,因为机器的默认字节就是小端序
	DemoStructAndFile()
}

/* 不使用序列化的方式,直接强制转换structure与[]byte */

type Test struct {
	F1 uint64 // 8个字节
	F2 uint32 // 4个字节
	F3 byte   // 1个字节
}

func struct2Bytes(p unsafe.Pointer, n int) []byte {
	return (*[4096]byte)(p)[:n]
}
